/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;
import modelo.*;
import java.sql.*;
import SQL.Conexion;
import java.util.ArrayList;

/**
 *
 * @author german
 */
public class ControladorUsuario {
    
    public void ingresarUsuario(Usuario us)
            {
                try{
                    Connection conexion = Conexion.getConexion();
                    String sql="insert into usuario values(seqUsuario.nextval,"
                    + "?,?,?,?,?,?,?,?,?,?)";
                    PreparedStatement cn = conexion.prepareStatement(sql);
                    cn.setString(1, us.getNombre_usuario());
                    cn.setString(2, us.getPassword());
                    cn.setDate(3, us.getFecha_nac());
                    cn.setString(4, us.getRut());
                    cn.setString(5, us.getSexo());
                    cn.setString(6, us.getNombre());
                    cn.setString(7, us.getApPaterno());
                    cn.setString(8, us.getApMaterno());
                    cn.setString(9, us.getEmail());
                    cn.setString(10, us.getTelefono());
                    
                    cn.execute();
                }
                catch(Exception z)
                {
                    System.err.print("Error con "+z.getMessage());
                }
            }//fin ingresarUsuario

    public Usuario BuscarUsuario(int id)
    {
        Usuario us= new Usuario();
        try{
            Connection conexion = Conexion.getConexion();
            String sql="select * FROM USUARIO WHERE ID_USUARIO="+id;
            Statement select=conexion.createStatement();
            ResultSet rs = select.executeQuery(sql);
            while(rs.next())
                {
                    us.setId_usuario(rs.getInt(1));
                    us.setNombre_usuario(rs.getNString(2));
                    us.setPassword(rs.getNString(3));
                    us.setFecha_nac(rs.getDate(4));
                    us.setRut(rs.getNString(5));
                    us.setSexo(rs.getNString(6));
                    us.setNombre(rs.getNString(7));
                    us.setApMaterno(rs.getNString(8));
                    us.setApPaterno(rs.getNString(9));
                    us.setEmail(rs.getNString(10));
                    us.setTelefono(rs.getNString(11));
                }
        }
        catch(Exception z)
        {
            System.err.print("Error con "+z.getMessage());
        }
        return us;
    }
    public ArrayList ListarUsuarios()
    {
        ArrayList lista = new ArrayList();
        try{
            Connection conexion = Conexion.getConexion();
            String sql="select * FROM USUARIO";
            Statement select=conexion.createStatement();
            ResultSet rs = select.executeQuery(sql);
            while(rs.next())
                {
                    Usuario us= new Usuario();
                    us.setId_usuario(rs.getInt(1));
                    us.setNombre_usuario(rs.getNString(2));
                    us.setPassword(rs.getNString(3));
                    us.setFecha_nac(rs.getDate(4));
                    us.setRut(rs.getNString(5));
                    us.setSexo(rs.getNString(6));
                    us.setNombre(rs.getNString(7));
                    us.setApMaterno(rs.getNString(8));
                    us.setApPaterno(rs.getNString(9));
                    us.setEmail(rs.getNString(10));
                    us.setTelefono(rs.getNString(11));
                    lista.add(us);
                }
        }
        catch(Exception z)
        {
            System.err.print("Error con "+z.getMessage());
        }
        return lista;
    }
    public void EliminarUsuario(int id)
    {
        try
        {
            String sql = "delete from Usuario where ID_USUARIO=?";
            Connection conexion = Conexion.getConexion();
            PreparedStatement consulta = conexion.prepareStatement(sql);
            consulta.setInt(1, id);
            consulta.executeUpdate();            
        }
        catch(Exception z)
        {
            System.err.print("Error con "+z.getMessage());
        }
    }
    public void ModificarUsuario(Usuario us)
    {
        try{
            Connection conexion = Conexion.getConexion();
            String sql="update usuario set NOMBRE_USUARIO='"+us.getNombre_usuario()+"',"
                    + "PASSWORD='"+us.getPassword()
                    +"', FECHA_NAC= ?,"
                    + " RUT='"+us.getRut()
                    +"', SEXO='"+us.getSexo()
                    +"',NOMBRE='"+us.getNombre()+"',"
                    + " APELLIDO_PATERNO='"+us.getApPaterno()
                    +"', APELLIDO_MATERNO='"+us.getApMaterno()
                    +"', EMAIL='"+us.getEmail()
                    +"', TELEFONO='"+us.getTelefono()+"'"
                    + " where ID_USUARIO="+us.getId_usuario();
            PreparedStatement consulta = conexion.prepareStatement(sql);
            consulta.setDate(1, us.getFecha_nac());
            consulta.executeUpdate();
        }
        catch(Exception z)
        {
            System.err.print("Error con "+z.getMessage());
        }
    }
    
}
